#ifndef AGVWINDOW_H
#define AGVWINDOW_H

#include <QMainWindow>
#include <QSerialPort>
#include <QTimer>
#include <QGraphicsScene>
#include <QVector>

namespace Ui {
class AGVWindow;
}

class AGVWindow : public QMainWindow {
    Q_OBJECT

public:
    explicit AGVWindow(QWidget *parent = nullptr);
    ~AGVWindow();

private slots:
    void updateStatus();
    void moveForward();
    void moveBackward();
    void turnLeft();
    void turnRight();
    void readSerialData(); // 读取串口数据
    void openSerialPort();
    void closeSerialPort();

private:
    Ui::AGVWindow *ui;

    QTimer *timer;
    int x, y; // AGV小车的位置

    QSerialPort *serialPort; // 串口通信对象

    QGraphicsScene *scene;       // 管理图形项的场景
    QVector<QPointF> trajectoryPoints; // 用于存储轨迹点

    void updateTrajectory();
};

#endif // AGVWINDOW_H
